﻿using System;
using System.Collections.Generic;
using System.Text;
using Com.queryzer2.Security;
using Com.queryzer2.Services.Interface;
using Com.queryzer2.Dao.Interface;
using Com.queryzer2.Dao.Base;
using Com.queryzer2.Dao.Impl;


namespace Com.queryzer2.Services.Impl
{
    public class ServiceFactory : IServiceFactory
    {
        private static IDaoBaseSession<ISessionModel> OracleProvider = new OracleSessionManager("LOCAL");

        public IGEP_DATID01Services GEP_DATID01Service
        {
            get
            {
                GEP_DATID01Services s = new GEP_DATID01Services();
                s.DbProvider = OracleProvider;
                return s;
            }
        }

        public IGEP_DATIM01Services GEP_DATIM01Service
        {
            get
            {
                GEP_DATIM01Services s = new GEP_DATIM01Services();
                s.DbProvider = OracleProvider;
                return s;
            }
        }
        
        public IGEP_DATIM02Services GEP_DATIM02Service
        {
            get
            {
                GEP_DATIM02Services s = new GEP_DATIM02Services();
                s.DbProvider = OracleProvider;
                return s;
            }
        }

        public IGEP_DATIR01Services GEP_DATIR01Service
        {
            get
            {
                GEP_DATIR01Services s = new GEP_DATIR01Services();
                s.DbProvider = OracleProvider;
                return s;
            }
        }

        public IGEP_DATIV01Services GEP_DATIV01Service
        {
            get
            {
                GEP_DATIV01Services s = new GEP_DATIV01Services();
                s.DbProvider = OracleProvider;
                return s;
            }
        }

        public IGEP_DATIV02Services GEP_DATIV02Service
        {
            get
            {
                GEP_DATIV02Services s = new GEP_DATIV02Services();
                s.DbProvider = OracleProvider;
                return s;
            }
        }

        public IGEP_DATINSTServices GEP_DATINSTService
        {
            get
            {
                GEP_DATINSTServices s = new GEP_DATINSTServices();
                s.DbProvider = OracleProvider;
                return s;
            }
        }

        public IUtenteService UtenteService
        {
            get { UtenteService s=  new UtenteService();
            s.DbProvider = OracleProvider;
            return s;
            }
        }

        public ISecurityProvider SecurityProvider
        {
            get { SecurityProvider s= new SecurityProvider();
            s.DbProvider = OracleProvider;
            return s;
            }
        }

        public IAnagraficheServices AnagraficheService
        {
            get { AnagraficheServices.Instance.DbProviderSetter=OracleProvider;
            return AnagraficheServices.Instance;
            }
        }

        public IGestioneEsitiServices GestioneEsitiService
        {
            get
            {
                GestioneEsitiServices.Instance.DbProviderSetter = OracleProvider;
                return GestioneEsitiServices.Instance;
            }
        }

        public IGestioneInserimentoServices GestioneInserimentoService
        {
            get
            {
                GestioneInserimentoServices.Instance.DbProviderSetter = OracleProvider;
                return GestioneInserimentoServices.Instance;
            }
        }

        public IGestioneFasiServices GestioneFasiService
        {
            get
            {
                GestioneFasiServices.Instance.DbProviderSetter = OracleProvider;
                return GestioneFasiServices.Instance;
            }
        }

        public IGestioneRisposteServices GestioneRisposteService
        {
            get
            {
                GestioneRisposteServices.Instance.DbProviderSetter = OracleProvider;
                return GestioneRisposteServices.Instance;
            }
        }

        public IPraticaBaseServices PraticaBaseService
        {
            get
            {
                PraticaBaseServices.Instance.DbProviderSetter = OracleProvider;
                return PraticaBaseServices.Instance;
            }
        }
        public IServizioServices ServizioServices
        {
            get
            {
                ServizioServices s = new ServizioServices();
                s.DbProvider = OracleProvider;
                return s;
            }
        }

       
    }
}
